package com.ruoyi.user.service.impl;

import java.util.List;

import com.alibaba.fastjson.JSON;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.shop.api.domain.CheShop;
import com.ruoyi.system.api.RemoteUserService;
import com.ruoyi.system.api.domain.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.user.mapper.CheUserrMapper;
import com.ruoyi.system.api.domain.CheUserr;
import com.ruoyi.user.service.ICheUserrService;

/**
 * 用户Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-01-02
 */
@Service
public class CheUserrServiceImpl implements ICheUserrService 
{
    @Autowired
    private CheUserrMapper cheUserrMapper;
    @Autowired
    private RemoteUserService remoteUserService;

    /**
     * 查询用户
     * 
     * @param id 用户主键
     * @return 用户
     */
    @Override
    public CheUserr selectCheUserrById(Long id)
    {
        return cheUserrMapper.selectCheUserrById(id);
    }

    /**
     * 查询用户列表
     * 
     * @param cheUserr 用户
     * @return 用户
     */
    @Override
    public List<CheUserr> selectCheUserrList(CheUserr cheUserr)
    {
        List<CheUserr> cheUserrs = cheUserrMapper.selectCheUserrList(cheUserr);
        cheUserrs.forEach((item->{
            Long sysUserid = item.getSysUserid();
            AjaxResult info = remoteUserService.getInfo(sysUserid, null);
            Object o = info.get(AjaxResult.DATA_TAG);
            if (o == null){
                return;
            }
            SysUser sysUser = JSON.parseObject(JSON.toJSON(o).toString(), SysUser.class);
            item.setSysUser(sysUser);
        }));
        return cheUserrs;
    }

    /**
     * 新增用户
     * 
     * @param cheUserr 用户
     * @return 结果
     */
    @Override
    public int insertCheUserr(CheUserr cheUserr)
    {
        return cheUserrMapper.insertCheUserr(cheUserr);
    }

    /**
     * 修改用户
     * 
     * @param cheUserr 用户
     * @return 结果
     */
    @Override
    public int updateCheUserr(CheUserr cheUserr)
    {
        return cheUserrMapper.updateCheUserr(cheUserr);
    }

    /**
     * 批量删除用户
     * 
     * @param ids 需要删除的用户主键
     * @return 结果
     */
    @Override
    public int deleteCheUserrByIds(Long[] ids)
    {
        return cheUserrMapper.deleteCheUserrByIds(ids);
    }

    /**
     * 删除用户信息
     * 
     * @param id 用户主键
     * @return 结果
     */
    @Override
    public int deleteCheUserrById(Long id)
    {
        return cheUserrMapper.deleteCheUserrById(id);
    }

    @Override
    public CheUserr selectBySysId(CheUserr cheUserr) {
        return cheUserrMapper.selectBySysUserId(cheUserr);
    }
}
